<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>阻止事件冒泡</title>
  <style>
    .father {
      overflow: hidden;
      width: 300px;
      height: 300px;
      margin: 100px auto;
      background-color: pink;
      text-align: center;
    }

    .son {
      width: 200px;
      height: 200px;
      margin: 50px;
      background-color: purple;
      line-height: 200px;
      color: #fff;
    }
  </style>
</head>
<body>
  <div class="father">
    <div class="son">son儿子</div>
  </div>
  <script>
    // 常见事件对象的属性和方法
    // 阻止冒泡  dom 推荐的标准 stopPropagation()
    var son = document.querySelector('.son')
    son.addEventListener('click', function (e) {
      alert('son')
      e.stopPropagation() // stop 停止  Propagation 传播
      e.cancelBubble = true // 非标准 cancel 取消 bubble 泡泡
    }, false)

    var father = document.querySelector('.father')
    father.addEventListener('click', function () {
      alert('father')
    }, false)
    document.addEventListener('click', function () {
      alert('document')
    })
  </script>
</body>
</html>